1
Sintaks Alami: Filsafat Pengoverloadan Operator
AI037Lesson 17
00:00

Filsafat Sintaks Alami berpendapat bahwa tipe yang didefinisikan pengguna seharusnya berperilaku sebagai warga negara kelas pertama. Dengan menerapkan pengoverloadan operator, kita memungkinkan kelas menggunakan notasi standar (seperti + atau ==), yang mengurangi beban kognitif dan memenuhi prinsip kejutan terkecil.

1. Anatomi & Pengiriman

Operator adalah fungsi dengan nama khusus: kata kunci operator yang diikuti simbol. Sebuah operator unary memiliki satu operand, sedangkan sebuah operator biner memiliki dua. Ketika didefinisikan sebagai fungsi anggota, operand kiri terikat pada pointer this implisit (a.operator+(b)). Sebagai nonanggota, keduanya eksplisit (operator+(a, b)).

Dapat Di-Overload+ - * / % ^& | ~ ! = < >+= -= *= /= << >>== != <= >= && ||++ -- , ->* -> () []Tidak Dapat Di-Overload:: (Ruas Lingkup).* (Pengacau Anggota). (Titik)?: (Kondisional)Tabel 14.1. Izin Operator (Lihat hal. 684)

2. Kendala & Etika

C++ mencegah "vandalisme bahasa": Anda tidak dapat membuat simbol baru (misalnya, **) atau mendefinisikan ulang operasi untuk tipe bawaan (misalnya, int + int). Precedensi dan asosiativitas adalah tak dapat diubah. Prinsip arsitektur: Kelas yang mendefinisikan == terintegrasi dengan lancar dengan algoritma perpustakaan seperti std::find.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>